Configurable connector for system-level communication

ABSTRACT

A host device comprises a controller and a connector. The host connector comprises fixed-function and multi-function pins. A first group of host connector pins comprises one or more of the fixed-function pins and a second group of pins comprises the remainder of the fixed-function pins and the multi-function pins. The host connector can be releasably attached to a connector of an accessory device. The first group of host connector pins can be used to discover the functions of the accessory connector. The host device can select functions to be enabled at the host and accessory connectors from among the functions mutually supported by the two connectors. The host can enable the selected functions at the host connector and can instruct the accessory to enable the selected functions at the accessory connector. The host can reconfigure host connector functions in response to a different accessory being attached to the host.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims priority to, and the benefit of, U.S.Provisional Application Nos. 61/264,206, filed Nov. 24, 2009, and61/324,236, filed Apr. 14, 2010, which are both incorporated herein byreference.

FIELD

The present disclosure relates to connectors, and, more particularly,connectors that can be dynamically configured.

BACKGROUND

Modern computing and mobile devices (smart phones, laptop computers,etc.) should be capable of physically connecting to and communicatingwith a wide variety of accessory devices (desktop computers,televisions, stereo receivers, etc.). Various communication interfacesare used to connect these devices and the physical connectors associatedwith the interfaces are usually incompatible. Thus, an electronic devicemay comprise several physical ports to allow connection to variousaccessories.

Some physical connectors can support more than one communicationinterface. Typically, each pin of such connectors supports only onefunction (data in, data out, clock, etc.) of an interface. Thus, theseconnectors often have a large pin count and consume extra device realestate, a precious commodity in hand-held devices. These connectors alsosuffer from low pin utilization if only one interface is used. Thus, theextra space consumed may not be put to efficient use.

To accommodate modifications to existing interfaces or entirely newinterfaces, the physical design of a connector can be modified.Redesigned connectors are often incompatible with the previous designs,resulting in older devices unable to communicate with newer ones.Retrofitting a new connector design into existing devices is oftendifficult as connectors are typically integrated into a device. Thus,older devices may require physical adapters or other specializedhardware to communicate with newer devices. Connectors can be designedwith extra pins to allow for future support of new interfaces andfunctions, but this also increases connector size and the extra pinswill remain unused until the new interfaces are developed.

Multiple communication interfaces have been integrated into a singlephysical connector. For example, the VESA (Video Electronics StandardsAssociation) DisplayPort Interoperability Guideline, Version 1.1a, setsa guideline for enabling interoperability between DisplayPort and otherdisplay standards through cable adapters. However, this approach relieson physical adapters to support the physical connection between multipleinterfaces. Physical adapters can be more costly and complicate theconnection scheme, especially for home users.

Accordingly, there is a need for a flexible and expandable connectorthat can support multiple communication standards at the system level.

SUMMARY

A connector and method are disclosed that allow for dynamicconfiguration of a connection between a host device, such as a mobilephone, and an accessory. The connection comprises a host deviceconnector connected to an accessory connector. Each connector can becapable of supporting a set of functions, features, interfaces,protocols, etc. The host device can select from a set of mutuallysupported functions that a connection can support. The host device canconfigure pins of the host device connector to support the selectedfunctions, and instruct the accessory device to do the same.

The connectors can comprise fixed-function pins and multi-function pins.The multi-function pins are configurable to support various functions.The fixed-function pins are not configurable. In some embodiments, thefixed-function pins can be used to discover the accessory connectorfunctions. In other embodiments, the multi-function pins can be used todiscover this information. The pins can be arranged into two physicallyseparated groups of pins. The first group of pins can comprisefixed-function pins, and the second group of pins can comprise acombination of fixed-function and multi-function pins.

The host device can automatically configure the host connector inresponse to detecting an accessory being attached to the host device.Additionally, a host connector can be reconfigured if the host devicedetects that one accessory has been swapped out for another. The hostdevice can also automatically reconfigure a connection if it detectsthat the transfer of data across the connection would be performed morequickly, more efficiently, etc., if a currently disabled connectorfunction (protocol or interface) were used to transfer the data.

The host device can request the functions supported by an accessoryconnector and the accessory can send the requested functions to the hostdevice in response. The host device can then select one or morefunctions to be enabled that both the host and accessory devicessupport. The accessory can receive an instruction from the host deviceto configure the accessory connector pins to support a selected set offunctions. The accessory can enable the selected functions in responseto receiving the instruction. In some embodiments, the accessory devicecan exclude sending connection functions to the host device that wouldbe undesirable based on special knowledge contained in the accessorydevice. For example, if a function would exceed the accessory powerbudget, the accessory device can exclude such a function.

The host connector is typically integrated into the host device. Theaccessory device can be integrated into an accessory, such as aconnector integrated into a personal computer. The accessory device canalso be a docking station, in which case, the accessory can act as aphysical adapter between the mobile host device connector and existingstandard physical connectors (USB, D-sub connector, etc.). In any event,the accessory device is generally releasably attached to the hostthrough a catch or mating connectors.

The foregoing and other objects, features and advantages of theinvention will become more apparent from the following detaileddescription, which proceeds with reference to the accompanying Figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an exemplary mobile host device connected to one of severalaccessories by a host connector.

FIG. 2 is a block diagram of an exemplary mobile host device connectedto an exemplary accessory device.

FIG. 3 is a flowchart of an exemplary method of configuring a mobilehost device connector for connecting to an accessory device connector.

FIG. 4 is a block diagram of an exemplary mobile host device showingseveral multi-function pins capable of being controlled by multiple pincontrollers.

FIG. 5 is a flowchart of an exemplary method of reconfiguring a hostconnector to enable a high data rate connector function.

FIG. 6 is a flowchart of an exemplary method of reconfiguring a hostconnector in response to a second accessory being connected to a mobilehost device in place of a first accessory or otherwise being connectedto the mobile host device after being disconnected.

FIG. 7 is a flowchart of an exemplary method of configuring an accessoryconnector connected to a host connector.

FIG. 8( a) is a top view of an exemplary physical implementation of thehost connector of FIG. 4.

FIG. 8( b) is an end view of an exemplary physical implementation of thehost connector of FIG. 4.

FIG. 8( c) is a bottom view of an exemplary physical implementation ofthe host connector of FIG. 4.

FIG. 9 shows an exemplary mobile host device connected to multipleaccessories by a host connector connected to an accessory dockingstation device.

FIG. 10 is a block diagram of an exemplary docking station accessorydevice capable of connecting to the host connector of FIG. 4.

FIG. 11 is a schematic diagram of a stereo cable accessory with built-inFM antenna connected to the exemplary host connector of FIG. 4.

FIG. 12 is a schematic diagram of a passive dock accessory with audiooutput and synchronization and charge support connected to the exemplaryhost connector of FIG. 4.

FIG. 13 is a schematic diagram of an active accessory device with HDMIand optical SPDIF output functions connected to the exemplary hostconnector of FIG. 4.

FIG. 14 is a schematic diagram of a phone powered FM transmitteraccessory connected to the exemplary host connector of FIG. 4.

FIG. 15 is a block diagram of an exemplary mobile device.

FIG. 16 is a block diagram of a cloud computing environment in whichhost and accessory devices can operate.

DETAILED DESCRIPTION

As used in this application and in the claims, the singular forms “a,”“an,” and “the” include the plural forms unless the context clearlydictates otherwise. Additionally, the term “includes” means “comprises.”

The described systems, apparatus and methods described herein should notbe construed as limiting in any way. Instead, the present disclosure isdirected toward all novel and non-obvious features and aspects of thevarious disclosed embodiments, alone and in various combinations andsub-combinations with one another. The disclosed systems, methods, andapparatus are not limited to any specific aspect or feature orcombinations thereof, nor do the disclosed systems, methods, andapparatus require that any one or more specific advantages be present orproblems be solved.

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially can in some casesbe rearranged or performed concurrently. Moreover, for the sake ofsimplicity, the attached Figures cannot show the various ways in whichthe disclosed systems, methods and apparatus can be used in conjunctionwith other systems, methods and apparatus. Additionally, the descriptionsometimes uses terms like “produce” and “provide” to describe thedisclosed methods. These terms are high-level abstractions of the actualoperations that are performed. The actual operations that correspond tothese terms will vary depending on the particular implementation and arereadily discernible by one of ordinary skill in the art.

Theories of operation, scientific principles or other theoreticaldescriptions presented herein in reference to the apparatus or methodsof this disclosure have been provided for the purposes of betterunderstanding and are not intended to be limiting in scope. Theapparatus and methods in the appended claims are not limited to thoseapparatus and methods that function in the manner described by suchtheories of operation.

Turning now to the drawings, FIG. 1 shows a host mobile device 100(host), such as a mobile phone, connected to an accessory device(accessory) 150 by a physical connection 140 (e.g., a multi-wire cable).The accessory 150 can be, for example, a personal computer 110, atelevision 120 or an audio player 130. The physical connection 140connects a host connector 160 to an accessory connector 115, 125 or 135integrated into an accessory 110, 120 or 130. The connectors 160, 115,125 and 135 generally are either male or female and include a groupingof two or more physical pins. The connection 140 can support a widerange of connectors, communication interfaces, protocols, features andfunctions. For example, the connection 140 can comprise USB (UniversalSerial Bus), HDMI (High Definition Multimedia Interface), PCI-Express,DisplayPort, MHL (Mobile High-Definition Link), SATA (Serial ATA) and/orSPDIF (Sony/Philips Digital Interface) connections. The connection 140can also support mass storage, CD/DVD-ROM, web-cam and HID (HumanInterface Device) devices or an FM transmitter. The connection 140 canbe as simple as a stereo cable with a built-in FM antenna. Theconnection 140 can support one or more of these connections, interfaces,features or functions. For example, the connection 140 can support bothUSB 3.0 and HDMI, with separate cables or a single cable providing thephysical USB and HDMI connections. In addition, the connection 140 cansupport additional protocols such as 5.1 audio or Ethernet via tunnelingover one or more supported protocols, such as USB or PCI-Express. Theterms “function,” “features,” “interface,” “protocol” and “connector”may be used interchangeably and refer to any feature, function,interface, connection, connector, etc. supported by a connection betweena host device 100 and an accessory device 150.

Although shown as a mobile phone, the host device 100 can be any type ofgeneral computing or mobile device such as a personal computer, mediaplayer or personal digital assistant. In general, the host device can behandheld but the connector described herein can also be used on devicesthat are typically not handheld, such as a desktop computer. Anaccessory 150 can be any device capable of physically connecting to andbeing electronically coupled with the host device 100. For example, inaddition to the accessory personal computer 110, television 120 andaudio player 130, the accessory 150 can be a set of headphones, amicrophone, an FM antenna or other device.

The terms “host” and “accessory” as used herein indicate a master-slaverelationship between connected devices with respect to the discovery ofa function set supported by an accessory connector and configuring thecapabilities of the host and accessory connectors. As discussed indetail below, the host device is typically the master device. The hostdevice requests information from the accessory device, selects theconnector functions to be enabled, and instructs the accessory device toenable the selected connector functions. The accessory device istypically the slave device. The accessory device sends requestedinformation to the host device and configures accessory connectorfunctions in response to instructions received from the host device.

The host 100 can be connected to a communication network 180 via acommunication link 170. The communication link 170 can be a wired orwireless link. The communication network 180 can be a personal areanetwork (PAN), local area network (LAN), the Internet, a cellular orsatellite mobile communication network, or any other communicationnetwork. The communication configuration shown in FIG. 1 allows users toperform a wide variety of operations. For example, the host device 100can download or stream media files (audio, video, etc.) provided byservers 185, 190 and 195 for output at an accessory device 150. Inanother example, the host 100 can download or upload information to thepersonal computer 110 to synchronize the host 100 with informationstored on the computer 110.

FIG. 2 is a block diagram of an exemplary host 200 connected to anexemplary accessory 250 via a cable, shown generally at 202. The host200 and accessory 250 can be connected by coupling of a host connector220 and an accessory connector 270. Such couplings can be releasablyattachable, such as through cable connections or matingfemale-/male-type connectors. The host 200 can comprise a controller210, the host connector 220 and a host connector function store 230. Thecontroller can be any microprocessor or microcontroller, as is known inthe art. The host 200 can also comprise a media store 240. The hostconnector 220 can comprise M fixed-function pins 224 and Nmulti-function pins 228 where M and N are any integer numbers dependingon the particular application. Each of the fixed-function pins 224 canhave a dedicated function, such as providing a power or groundconnection or hosting the function of a pin of a USB port. The functionssupported by the fixed-function pins typically are not changed duringoperation of the host device. That is, the fixed-function pins are notconfigurable. Each of the multi-function pins 228 can be configurableand can support more than one function. For example, a multi-functionpin can operate as a USB pin in a first configuration, an HDMI pin in asecond configuration, and a DisplayPort pin in a third configuration.

The host controller 210 can be coupled to the host connector 220, thehost connector function store 230 and the media store 240. The hostconnector function store 230 stores one or more functions supported bythe host connector. Thus, the function store 230 stores a plurality ofpossible pin configurations that can be dynamically applied to theconnector 220 for on the fly pin configurations. The host controller 210can reference the host connector function store 230 when determiningwhich host connector and accessory connector functions to enable. Afunction can specify, for example, an interface supported by the hostconnector (HDMI, DisplayPort, PCI-Express, etc.) and can include amapping of connector pins to interface pins. For example, a functionindicating that the host connector 220 supports HDMI can indicate thathost connector pin 13 is configured to operate as the DDC_DATA pin, pin15 is configured to operate as the DDC_CLK pin, etc. The storedfunctions can also indicate the functions of fixed-function pins. Forexample, a stored function can indicate that pin 1 of the host connector220 can operate as an FM antenna, pin 3 can operate as analog ground,etc. The media store 240 can store one or more media files (audio,video, etc.) that can be communicated across a host-accessoryconnection. As will be described in detail below, the host controller210 can select which connector functions can be enabled in ahost-accessory connection. The host connector function store 230 and themedia store 240 can be memory such as volatile memory (e.g., registers,cache, RAM), non-volatile memory (e.g., ROM, FPGA, EEPROM, flash memory,etc.) or some combination of the two.

The accessory device 250 comprises a controller 260, a connector 270 andan accessory connector function store 280. The accessory connector 270can comprise M fixed-function pins 274 and N multi-function pins 278.The host connector fixed-function pins 224 can be connected to theaccessory connector fixed-function pins 274, and the host connectormulti-function pins 228 can be connected to the accessory connectormulti-function pins 278. The pins of the host connector 220 can bearranged such that the fixed-function pins 224 and the multi-functionpins 228 are physically interspersed among each other. Alternatively,the fixed-function pins 224 can be physically arranged to be separatefrom the multi-function pins 228. The pins 274 and 278 of the accessoryconnector 270 can be similarly arranged. The host and accessoryconnectors 220 and 270 can comprise one or more physical ports orconnectors. For example, the host connector 220 can comprise a micro-USBport comprising a set of fixed-function pins and a second portcomprising the remainder of the fixed-functions pins and themulti-function pins. In another example, a connector can comprise asingle physical port that includes all of the connector pins.

The accessory controller 260 can be connected to the accessory connector270 and the accessory connector function store 280. The accessoryconnector function store 280 can store functions supported by theaccessory connector in a manner similar to that described above inregard to the functions stored in the host connector function store 230.

Although the host and accessory devices in FIGS. 1 and 2 are shown asone connector, any of the host or accessory devices described herein cancomprise more than one connector. For example, host 200 can comprisemultiple connectors 220, allowing the host 200 to simultaneously connectto multiple accessories 250. The host controller 210 can be connected toeach of the host connectors. In one embodiment of a host deviceconnected to multiple accessory devices via dynamically configurableconnectors, a mobile phone host device can connect to an externalspeaker system and a personal computer. Similarly, accessory 250 cancomprise multiple connectors 270 to allow connection to multiple hosts200. In one embodiment of an accessory device connected to multiple hostdevices via multiple dynamically configurable connectors, an accessorytelevision can be connected to multiple host mobile phones.

FIG. 3 is a flowchart of an exemplary method of configuring a mobilehost device for connecting to an accessory. The host connector can bedynamically configured in response to an accessory being attached to thehost device, operations or transactions that are being performed orscheduled to be performed, etc. For example, the method 300 could beexecuted in response to a mobile player being releasably attached to atelevision. At 310, the mobile host device can select connectorfunctions to be enabled for connecting a mobile host device to anaccessory. Information regarding the accessory connector functions canbe received from the accessory or another source, and can be stored atthe host device. Such information can be communicated via the fixedpins. Additionally, such information can be received in response to arequest from the host device. At 320, the mobile host device canconfigure pins of the mobile host device connector. For example,configuring the pins can comprise assigning each pin to be configured asa pin function associated with one of the selected connector functions.For example, if the mobile host device selects the USB interface to beenabled, configuring the pins can comprise assigning individual hostdevice connector pins to support the DATA−, DATA+, VCC and VDD pinfunctions of the USB interface. Configuration of the pins can be static(i.e., the pin configuration for a given function can be determinedduring host and accessory device design and implemented during devicemanufacture) or the pin configuration can be dynamic. For example, indynamic pin configuration, during operation of the mobile host device, afirst multi-function pin can support the DATA− pin function in a firstconfiguration, and a second multi-function pin can support the DATA+ pinfunction in a second pin configuration. Connector pin configuration cancomprise the host device enabling the selected connector functions.Prior to step 320, the host connector can be unconfigured or previouslyconfigured. An unconfigured connector can have one or more connectorfunctions disabled or a set of default functions enabled. Pins that arenot enabled in a particular configuration can be kept in a highimpedance state until configured. Hardware for putting pins intohigh-impedance mode is well known in the art, such as tri-state gates.

In some embodiments, enabling the selected connector functionscomprises, for each of the pins to be configured, configuring the hostdevice such that one of a plurality of host device pin controllers(discussed below in regards to FIG. 4) controls (i.e., transmits andreceives signals from) the pin. For example, if pin 13 of the hostmobile phone is capable of being controlled by an HDMI DDC DAT pincontroller or a PCIEX CLK+ pin controller, the mobile phone can beconfigured such that the HDMI DDC DAT pin controller controls pin 13.For example, the HDMI DDC DAT pin controller can be enabled and thePCIEX CLK+ pin controller can be disabled, or, if the pin controllersare connected to pin 13 by a switch, the switch can be configured toconnect the HDMI DDC DAT controller to pin 13.

At 330, the host device can instruct the accessory device to configurethe accessory connector pins to support the selected functions. Themobile host device can instruct the accessory by sending an instructionover the host-accessory connection. This instruction can constitute a“function set” or “mode set” command. In the example of a media playerbeing connected to a television, after process block 330, the connectioncan be configured to support HDMI or another multimedia interface.Optionally, the host device can receive acknowledgement or confirmationthat the accessory device has successfully enabled the selectedaccessory connector functions. After configuring the host deviceconnector pins, the host device can load the necessary drivers tosupport the enabled connector functions. The drivers can be loaded fromthe host device store 230, or downloaded from a remote resourceconnected to the host device over a network. In addition, the hostdevice can then inform applications and other devices connected to thehost device that the enabled functions are available for use. The hostdevice can then begin appropriate communications over the host-accessoryconnection using the enabled connection functions.

In other embodiments, the method 300 can further comprise authenticationof an accessory. A host device can send an authentication request to theaccessory device. In response, the accessory can provide authenticationinformation to the host. The host device can attempt to authenticate theaccessory device based on the received information. If the host devicecan authenticate the accessory, the host device can instruct theaccessory device to configure the accessory connector. That is, theaccessory can enable a set of accessory connector functions in responseto receiving a “function set” instruction from the host. The host canrequest authentication information from accessories having configurableconnectors, such as personal computers and mobile devices.Authentication may not be required for certain classes of accessories,depending on the accessories' supported feature set.

FIG. 4 is a block diagram of an exemplary host device 400 showingseveral fixed and multi-function pins 426 capable of being controlled bypin controllers 412-419 and 421. The host 400 comprises a controller410, a connector 420, a host connector function store 430 and a mediastore 440. The connector 420 comprises 34 pins physically arranged intwo different groups. The first group of pins 426 comprises 29 pins(pins 1 through 29) and contains a combination of fixed-function andmulti-function pins. The second group of pins 422 comprises fivefixed-function pins (pins 30-34) which can be compatible with themicro-USB specification published by the USB Implementers Form(available at http://www.usb.org/). In some embodiments, select pinswithin the first group of pins 426 can be used to discover the functionssupported by an accessory connector connected to the host 400. Forexample, pins 10 and 12, controlled by USB controller 421, can be usedto send a request to a connected accessory for the functions supportedby the accessory connector and to receive the response from theaccessory. In other embodiments, any other low pin count serialinterface such as RS-232 can be used for this functionality. Thereceived accessory connector functions can be passed from the secondgroup of pins 426 to the controller 410.

The host controller 410 comprises pin control logic 411. The pin controllogic 411 comprises pin controllers 412-419 and 421 that provide thefunctions supported by the multi-function pins. For example, the USBcontroller 412 controls the second group of pins 422 and provides amicro-USB interface at these pins. No other pin controller connects tofixed-function pins 30-34, as these pins are not configurable.

More than one pin controller can be connected to the multi-functionpins. For example, Audio Left, SPDIF OUT and DP AUX+ (DisplayPortAuxiliary Pin (positive)) controllers 413, 414 and 415 are connected tomulti-function pin 22. Thus, in this example, pin 22 is capable ofsupporting any one of three functions. Pin 22 can deliver left-channelanalog audio output in a first configuration, operate as the output pinin the SPDIF interface in a second configuration and operate as theauxiliary (positive) pin in the DisplayPort interface in a thirdconfiguration. The pin control logic 411 ensures that eachmulti-function pin is controlled by no more than one pin controller atany given time. In some embodiments, a multiplexer (not shown) or otherswitch (e.g., tri-state gate) can be used to connect one of the pincontrollers to a multi-function pin. In other embodiments, one pincontroller connected to a multi-function pin can be enabled and theother pin controllers connected to the multi-function pin can bedisabled. The multiplexer or switch can be a component separate from thepin controller 410, or it can be integrated into the controllercircuitry. The pin control logic 411 should be configured such that pincontrollers that operate concurrently are connected to differentmulti-function pins. For example, Audio Left and Right controllersshould not be connected to the same multi-function pin as thesecontrollers operate concurrently when the stereo analog audio outputfunction is enabled.

Multi-function pins 5 and 13 support multiple functions in a similarmanner. HDMI DDC DAT and PCIEX CLK+ controllers 416 and 417 areconnected to pin 13 and SPDIF IN and MIC IN controllers 418 and 419 areconnected to pin 5. Thus, pin 13 can be configured to operate as the DDCDAT pin of the HDMI interface, or as the CLK+ pin of the PCI Expressinterface. Pin 5 can be configured to operate as the INPUT pin of theSPDIF interface or as a microphone input pin.

The pin controllers 412-419 and 421 can be related to the multi-functionpins by a “many-to-one” relationship. That is, each of themulti-function pins can be configured to support a dedicated set offunctions. In the example shown in FIG. 4, only pin 22 can operate asthe Audio Left, SPDIF OUT or DP AUX+ pins. The pin control logic 411 cancomprise duplicate pin controllers for a given function to provide formultiple ports of an interface. For example, connector 420 can supporttwo DisplayPort channels if two sets of DisplayPort controllers cancontrol two independent sets of multi-function pins.

To provide additional flexibility, pin controllers can be related tomulti-function pins by a “many-to-many” relationship. In thisarrangement, pin controllers can be configured to control more than onemulti-function pin. For example, pin control logic 411 can be configuredto connect HDMI DDC DAT controller 416 to pin 13 in one configuration,and to another multi-function pin in a second configuration.

The host controller 410 can select the host and accessory connectorfunctions to be enabled. The controller 410 can select the connectionfunctions based on the accessory connector functions received from theaccessory device and the host connector functions accessed from the hostconnector function store 430. The controller 410 can leave one or morehost connector functions or accessory connector functions unselected,or, the controller 410 can select all host and accessory connectorfunctions. The selected connector functions are selected from among thehost connector functions and the accessory connector functions accordingto selection criteria. In some embodiments, the selection criteria canbe that the selected connector functions are supported by both the hostand accessory devices. Thus, the controller 410 can select one or morefunctions that are mutually supported by the host and accessoryconnectors to be enabled. In other embodiments, the connector functionscan be selected according to different or additional criteria, such asconnection function power consumption, function bandwidth, functionspeed, which applications are currently executing or are scheduled forexecution on the host and/or accessory devices, etc. Thus, functionselection can comprise performing matching, comparing and/or otheroperations whose outcomes provides a measure or indication of whether agiven connector function is to be selected for enablement at the hostand accessory connectors. In some embodiments, the selection, ornegotiation, of connector functions to be enabled can be asymmetric.That is, the host device selects which functions are to be enabled. Theaccessory device does not participate in the selection of whichconnection functions are to be enabled. The accessory device responds torequests for information from the host device and enables accessoryconnector functions as instructed by the host device. In otherembodiments, the negotiation can be symmetric. That is, both the hostand accessory participate in selecting which connector functions are tobe enabled. An accessory device can select one or more connectorfunctions to be enabled and can send these functions to the host device.The host controller can then select connector functions to be enabledbased in part on the selected connector functions sent by the accessory.

The host controller 410 can also be configured to dynamicallyreconfigure the host connector 420 depending on the operations beingperformed or scheduled to be performed by the host 400. For example, ifa host 400 is scheduled to synchronize with a personal computeraccessory device, a large amount of data can be scheduled to be sentover the host-accessory connection. If the connector can support aninterface capable of a higher data transfer rate than any of theconnector functions currently enabled, the controller 410 can determinethat the higher data rate interface should be enabled. For example, thecontroller 410 can determine that a USB 3.0 interface should be enabledbefore the synchronization operation begins. The synchronizationoperation can then use the newly enabled USB 3.0 interface. In someembodiments, the controller 410 can reconfigure the host connector 420to restore the previous connector configuration after the sync operationis completed. Alternatively, the controller 410 can be configured tokeep the host connector 420 in the new configuration.

The controller 410 can reconfigure the host connector 420 in response toother operations or transactions. For example, the controller 410 canenable a video data interface such as HDMI in response to determiningthat a current operation involves the transfer of video data across ahost-accessory connector, if a video interface is not presently enabled.The controller 410 can determine which connector functions to enable inresponse to operations performed or scheduled to be performed based onalgorithms hard-wired into controller circuitry, controller firmware,software running on the host 400, user settings, or any combinationthereof. For example, the user can request an operation through a GUI.In order to carry out the operation, the host connector can bydynamically reconfigured to most effectively communicate with theaccessory in response to the user input. For instance, if user indicatesthat he or she wishes to play a movie stored on the host mobile deviceon a connected television, the host device can reconfigure the mobiledevice-television connection to enable an interface capable of high datatransfer rates, or an interface designed for multimedia communication.

A controller of an accessory device as described herein can comprise oneor more of the components of the host device controller 410 describedabove. For example, an accessory device controller can comprise pincontrol logic. The pin control logic can be capable of transmitting andreceiving signals to/from the pins of the accessory device connectorusing individual pin controllers. The accessory device pin control logiccan ensure that each multi-function accessory connector pin isoperatively coupled to one pin controller at any given time. In someembodiments, a multiplexer (not shown) or other switch (e.g., tri-stategate) can be used to connect one of the accessory device pin controllersto an accessory connector multi-function pin. In other embodiments, oneaccessory device pin controller connected to a multi-function pin can beenabled and the other accessory device pin controllers connected to themulti-function pin can be disabled to allow the accessory pin to becontrolled by a single pin controller.

FIG. 5 is a block diagram of an exemplary method 500 for reconfiguring ahost connector to enable a high data rate function. At 510, one or morefunctions to be enabled at a host connector and at an accessoryconnector can be selected. At 520, the one or more selected functionscan be enabled at the host connector. At 530, an instruction to enablethe one or more selected functions at the accessory connector can besent to the accessory device. At 540, the host device can determine thatan operation currently being performed or scheduled to be performed andinvolving the transfer of data over the host-accessory connection can becompleted in a shorter amount of time by enabling an additional functionof the host and accessory connectors not currently enabled. At 550, theadditional function can be enabled at the host device connector. At 560,an instruction can be sent to the accessory device to enable theadditional function at the accessory device connector. At 570, theadditional function can be used to transfer data over the connection.The operations 550, 560 and 570 can be performed in response to thedetermination at 540. Thus, the host can monitor performance of enabledconnector functions and dynamically reconfigure the host and accessoryconnectors in response to the monitoring. The reconfiguration cancomprise adding or replacing a function to the set of enabled functions.Reconfiguration can take place without disrupting other enabledconnector functions. For example, transfer of data can be maintained onsome pins while additional functionality is enabled at other pins notbeing used.

The host controller 410 can be configured to avoid function collision.For example, a globally unique identifier (GUID) can be associated witheach supported functionality having a unique pinout. The host controller410 can be configured to require that mutually supported functions havethe same GUID before enabling the function. Consider an example where ahost supports HDMI on pins 14-20 and PCI-Express on pins 21-24, and anaccessory supports HDMI on pins 18-24. The HDMI functions supported bythe host and the accessory can be associated with different GUIDs. Thehost controller will not enable the HDMI functions as they areassociated with different GUIDs. Thus, the host controller avoidsconnecting accessory HDMI pins to host PCI-Express pins. The hostcontroller also avoids connecting accessory HDMI pins to incorrect hostHDMI pins.

FIG. 6 is a flowchart of an exemplary method reconfiguring a hostconnector in response to a second accessory being connected to a mobilehost device in place of a first accessory. For example, method 600 couldbe executed in response to a user first connecting a mobile phone to astereo receiver to listen to songs stored on the phone, and then, later,disconnecting the stereo receiver and connecting a television to thephone to watch a movie. At 610, the mobile host device can select one ormore first functions to be enabled at a host connector for connecting toan accessory. At 620, the host device can configure the pins of the hostconnection to support the selected functions. At 630, the host devicecan instruct the accessory device to configure the accessory connectorpins to support the selected functions. At 640, detachment of theaccessory from the host device can be automatically detected. Forexample, some pins can be periodically monitored for connectivity, suchas by monitoring the current flow or signal switching. If apredetermined period of inactivity occurs, it can be determined that theaccessory has been disconnected. Another technique for automaticdetection is to simply look for voltage level changes on pins whereinone state indicates an “attached state” and another an “non-attached”state. At 650, attachment of a second accessory to the host device canbe detected. This can be again through monitoring of current or pinactivity. It can be assumed that after a disconnect, a new accessory wasconnected. At 660, the host device can request the second accessoryconnector functions from the second accessory device. At 670, anindication of one or more functions supported by the second accessoryconnector can be received from the second accessory. At 680, the hostdevice can select one or more second functions to be enabled at thesecond accessory connector and the host device connector. At 690, thehost device can configure the pins of the host connection to support theselected second functions. At 695, the second accessory device can beinstructed to configure the second accessory connector to support theselected second functions. Thus, the host device can automatically anddynamically reconfigure pins based on replacement of a first accessorywith a second accessory.

The method 600 can further comprise placing the host connector in anunconfigured or a previous configuration in response to detecting thefirst accessory device being detached from the host device. The hostcontroller can place the pins into a high-impedance state, enable adefault set of connector functions or enable a set of connector functionassociated with a previous configuration of the host controller.

FIG. 7 is a block diagram of an exemplary method 700 for configuring anaccessory connector connected to a host connector. At 710, a request canbe received from a host device that is releasably attached to theaccessory device for the functions supported by the connector of theaccessory device. At 720, an indication can be sent from the accessorydevice to the host device of one or more functions supported by theaccessory device connector. At 730, an instruction can be received bythe accessory from the host device to enable one or more selectedfunctions at the connector of the accessory device. At 740, the one ormore selected functions can be enabled at the connector of the accessorydevice. In some embodiments, enabling the functions at the accessorydevice connector comprises, for each of the pins to be configured,configuring the accessory device such that one of a plurality ofaccessory device pin controllers controls the pin. For example, if pin13 of the accessory device is capable of being controlled by an HDMI DDCDAT pin controller or a PCIEX CLK+ pin controller, the accessory can beconfigured such that the HDMI DDC DAT pin controller controls pin 13.For example, the HDMI DDC DAT pin controller can be enabled and thePCIEX CLK+ pin controller can be disabled, or, if the pin controllersare connected to pin 13 by a switch, the switch can be configured toconnect the HDMI DDC DAT controller to pin 13.

The accessory device connector can be unconfigured or previouslyconfigured prior to enabling the one or more selected functions at theaccessory device connector. The accessory device can be reconfigured byreceiving an instruction to enable additional functions and thenenabling the additional functions at the accessory connector. Anaccessory controller can place the accessory connector in anunconfigured or a previous configuration in response to detectingseparation of the accessory from a host. The accessory controller canplace the pins into a high-impedance state; enable a default set ofconnector functions or enable a set of connector function associatedwith a previous configuration of the accessory controller.

Table 1 shows an exemplary set of connection configurations for theexemplary 34-pin host connector shown in FIG. 4.

TABLE 1 Active Accessory Display Port 1 Display Display PCI lane, PCIPort 2 Passive Port, Express, 2 Express, 1 lanes Pin Pin Accessory HDMI4 lanes lanes lane USB 3.0 MHL, USB 3.0 type 1 FM_ANT (FM antenna) F 2AUDIO_L (left channel audio) M 3 AGND (analog ground) F 4 AUDIO_R (rightchannel audio) M 5 MIC_ MIC_IN/SPDIF_IN M IN 6 PHONE_DET (phonedetection) F 7 PASS_ SPDIF_OUT M ACC_ DET 8 NC HDMI_ NC NC NC NC CTRL FHPD 9 POWER_REQ F 10 NC HOST_DM F 11 GND F 12 NC HOST_DP F 13 NC HDMI_DP_ PCIEX_ PCIEX_ USB_ USB_ M DDC_ TXD3n RCKn RCKn RXDn RXDn DAT 14 GNDF 15 NC HDMI_ DP_ PCIEX_ PCIEX_ USB_ USB_ M DDC_ TXD3p RCKp RCKp RXDpRXDp CLK 16 NC HDMI_ DP_ PCIEX_ PCIEX_ USB_ USB_ M TXCN TXD2n TXD1nTXD1n TXDn TXDn 17 GND F 18 NC HDMI_ DP_ PCIEX_ PCIEX_ USB_ USB_ M TXCPTXD2p TXD1p TXD1p TXDp TXDp 19 NC HDMI_ DP_ PCIEX_ PCIEX_ DP NC M TXD0NTXD1n RXD1n RXD1n TXD1n 20 GND F 21 NC HDMI_ DP_ PCIEX_ PCIEX_ DP_ NC MTXD0P TXD1p RXD1p RXD1p TXD1p 22 NC HDMI_ DP_ PCIEX_ DP_ DP _ TXCn MTXD1N TXD0n TXD2n TXD0n TXD0n 23 GND F 24 NC HDMI_ DP_ PCIEX_ DP_ DP_TXCp M TXD1P TXD0p TXD2p TXD0p TXD0p 25 NC HDMI_ DP_ PCIEX_ DP_ DP_ TXDnM TXD2N AUXn RXD2n AUXn AUXn 26 GND F 27 NC HDMI_ DP_ PCIEX_ DP_ DP_TXDp M TXD2P AUXp RXD2p AUXp AUXp 28 Reserved F 29 GND F 30 +5 V F 31SYNC_DM F 32 SYNC_DP F 33 OTG_ID F 34 GND F

The letters F and M in the Pin Type column mean “fixed-function” and“multi-function,” respectively, and the letters “NC” mean, “NotConnected.” The individual pins (HDMI_TXD1P, PCIEX_TXD2p, etc.) of thevarious communication interfaces (USB 3.0, MHL, DisplayPort,PCI-Express, and HDMI) listed in Table 1 are known to those of skill inthe art.

As indicated in Table 1, high-speed signal pairs in various interfacessuch as the PCIEX_TXDp/n signal pair in PCI-Express and the DP_TXDn/psignal pair in DisplayPort can be routed on the same pins, for example,pins 13 and 15, as these pins are based on similar low-level electricalinterface (AC-coupled differential signaling). This allows thecorresponding pin controllers to use common interface circuitry andreduces design complexity, and controller area and cost. High speedinterfaces such as HDMI can be made compatible with AC-coupleddifferential signaling interfaces with the use of inexpensive interfaceconverter chips.

An alternative Table 1 can be as follows:

Active accessory Display port 1 Display lane, PCI port 2 DisplayPort,PCI express, express 1 lanes, MHL, Connector Pin HDMI 4 lanes 2 laneslane USB 3.0 USB 3.0 Pin type Accessory 1 FM_ANT fixed 2 ACC_POWERmulti- function 3 AGND gnd 4 AUDIO_L/SPDIF_OUT multi- function 5 MIC_INmulti- function 6 AUDIO_R/SPDIF_IN fixed 7 ACC_UART_TX fixed 8ACC_UART_RX fixed 9 HDMI_ n.c. n.c. n.c. USB3_ USB3_ multi- HPD VBUSVBUS function 10 PHONE_DET multi- function 11 GND gnd 12 HDMI_ n.c. n.c.n.c. USB3_ USB3_ multi- UTIL DP DP function 13 HDMI_ DP_ PCIEX _ PCIEX_USB3_ USB3_ multi- DDC_ TXD3n RCKn RCKn RXDp RXDp function DAT 14 HDMI_n.c. n.c. n.c. USB3_ USB3 _ gnd CEC DM DM 15 HDMI_ DP _ PCIEX _ PCIEX_USB3_ USB3_ multi- DDC_ TXD3p RCKp RCKp RXDn RXDn function CLK 16 GNDmulti- function 17 GND gnd 18 HDMI_ DP_ PCIEX _ PCIEX _ USB3_ USB_multi- TXD2P TXD2n TXD1n TXD1n TXDp TXDp function 19 HDMI_ DP_ PCIEX_(—) PCIEX_ DP_ USB3_ multi- TXD1P TXD1n RXD1n RXD1n TXD1n ID function20 HDMI_ DP_ PCIEX _ PCIEX _ USB3_ USB_3 gnd TXD2N TXD2p TXD1p TXD1pTXDn TXDn 21 HDMI_ DP_ PCIEX_ PCIEX_ DP_ MHL_ multi- TXD1N TXD1p RXD1pRXD1p TXD1p CTRL function 22 GND multi- function 23 GND gnd 24 HDMI_ DP_PCIEX_ DP_ DP_ MHL_ multi- TXD0P TXD0n TXD2n TXD0n TXD0n TXCn function25 HDMI_ DP_ PCIEX_ DP_ DP_ MHL_ multi- TXCP AUXn RXD2n AUXn AUXn TXDnfunction 26 HDMI_ DP_ PCIEX_ DP_ DP_ MHL_ gnd TXD0N TXD0p TXD2p TXD0pTXD0p TXCp 27 HDMI_ DP_ PCIEX_ DP_ DP_ MHL_ multi- TXCN AUXp RXD2p AUXpAUXp TXDp function 28 GND power 29 GND gnd uUSB 28 USB_VBUS power 29USB_DM fixed 30 USB_DP fixed 31 USB_OTG_ID fixed 32 USB_GND gnd

In the alternative Table 1, the HOST_DP and HOST_DM are replaced byACC_UART_TX and ACC_UART_RX. This means that the primary accessorycommunication path, which we use to negotiate features, authenticate,etc. can be changed to a simpler serial communication. The USB port(USB_DP and USB_DM) can also be used to do USB-based accessorycommunication, if the USB port is changed to host mode on the phone andthe accessory supports it.

FIGS. 8( a)-8(c) show top, end and bottom views of an exemplary physicalimplementation 800 of the host connector 420 of FIG. 4. In this example,the host connector is a single physical connector 800 comprising twophysically separate sets of pins 810 and 820. The first group of pins810 comprises five fixed-function pins and can be used for discoveringthe accessory connector features. The first group of pins 810 cancomprise a USB connection as shown, or any other low pin count serialinterface. The second group of pins 820 comprises a combination of 29fixed-function and multi-function pins. The connector 800 can beintegrated into a mobile host device and arranged, for example, at thebottom of the device to allow for a convenient connection to a dockingstation. The connector 800 can be connected to any wire, cable, dockingstation, accessory device, etc. having a connector capable of matingwith the connector 800.

FIG. 9 shows an exemplary host device 900 connected to multipleaccessories 910, 920 and 930 by a docking station device 950. In thisconfiguration, the docking station 950 operates as the accessory deviceand can have any of the components and functionalities of accessorydevices described herein. The docking station 950 can operate as aphysical adapter between accessories 910, 920, 930 and the connector ofthe host 900. Thus, connections 940, 944 and 948 can be cables thatconform to existing physical connector standards (mini- or micro-USB orType A, B, C or D HDMI connectors).

FIG. 10 shows a block diagram of an exemplary docking station accessorydevice 1050 capable of connecting to the host connector of FIG. 4. Theaccessory 1050 comprises a controller 1060, a connector 1070 and anaccessory store 1080. The connector 1070 comprises a first group ofmulti-function pins 1078 and a second group of fixed-function pins 1074.The accessory 1050 also includes a set of physical connectors 1089-1095that conform to physical connector standards of various communicationinterfaces. For example, the audio left/right connector 1090 can be aTRS (tip-ring-sleeve) connector and USB connector 1092 can be amicro-USB connector. The accessory 1050 can also comprise an MHLconnector 1089, an SPDIF connector 1091, a PCI-Express connector 1093,an HDMI connector 1094 and a DisplayPort connector 1095. Thus, a dockingstation accessory 1050 can allow multiple accessories to connect to ahost connector without requiring a physical redesign of the accessoryconnectors. The accessory 1050 can be viewed as a switch, routing datafrom the accessory connector 1070 to one or more of the connectors1089-1095, depending on the enabled functions of the accessory connector1050.

FIGS. 11-14 show schematic drawings of exemplary accessories connectedto the 39-pin host connector of FIG. 4. FIG. 11 shows a simple stereocable with a built-in FM antenna (pin 1) as an accessory. FIG. 12 showsa passive dock accessory device with stereo analog audio output (pins 2and 4). The accessory in FIG. 12 can be synchronized with the host viathe SYNC_DM and SYNC_DP pins and can be powered by the host via pin 34.FIG. 13 shows an active dock accessory with HDMI and optical SPDIFoutput capabilities. FIG. 14 shows an FM transmitter accessory poweredby the host via pin 34.

The dynamically configurable host and accessory connectors describedherein provide a low pin count connector able to support a wide varietyof communication interfaces at the system level. For a given set ofconnector capabilities, the pin count of a host connector comprisingmulti-function pins will likely be less than that of a connectorcomprised entirely of dedicated, fixed-function pins. The connectors asdescribed herein can accommodate the evolving communication capabilitiesof host and accessory devices. For example, a host connector can bereconfigured as new accessories implement the various interfacessupported by the connector. In addition, the host connector can beintegrated into host and accessory devices capable of supporting newfunctions added to existing protocols or entirely new protocols.Although new controller designs may be needed to support these newfunctions, the physical design of the connector can remain the same, aslong as there are a sufficient number of pins to support the new andupdated interfaces. Thus, the connector as described herein is flexibleand expandable, is forward and backward compatible to allow olderdevices to communicate with newer ones, and is less likely to requirephysical modification as communication interfaces continue to evolve.

FIG. 15 is a system diagram depicting an exemplary mobile device 1500including a variety of optional hardware and software components, showngenerally at 1502. The mobile device 1500 can be any host device oraccessory device as described herein. Any components 1502 in the mobiledevice can communicate with any other component, although not allconnections are shown, for ease of illustration. The mobile device canbe any of a variety of computing devices (e.g., cell phone, smartphone,handheld computer, Personal Digital Assistant (PDA), etc.) and can allowwireless two-way communications with one or more mobile communicationsnetworks 1504, such as a cellular or satellite network.

The illustrated mobile device 1500 can include a controller or processor1510 (e.g., signal processor, microprocessor, ASIC, or other control andprocessing logic circuitry) for performing such tasks as signal coding,data processing, input/output processing, power control, and/or otherfunctions. An operating system 1512 can control the allocation and usageof the components 1502 and support for one or more application programs1514. The application programs can include common mobile computingapplications (e.g., email applications, calendars, contact managers, webbrowsers, messaging applications), or any other computing application.

The illustrated mobile device 1500 can include memory 1520. Memory 1520can include non-removable memory 1522 and/or removable memory 1524. Thenon-removable memory 1522 can include RAM, ROM, flash memory, a harddisk, or other well-known memory storage technologies. The removablememory 1524 can include flash memory or a Subscriber Identity Module(SIM) card, which is well known in GSM communication systems, or otherwell-known memory storage technologies, such as “smart cards.” Thememory 1520 can be used for storing data and/or code for running theoperating system 1512 and the applications 1514. Example data caninclude web pages, text, images, sound files, video data or other datasets to be sent to and/or received from one or more network servers orother devices via one or more wired or wireless networks. The memory1520 can be used to store a subscriber identifier, such as anInternational Mobile Subscriber Identity (IMSI), and an equipmentidentifier, such as an International Mobile Equipment Identifier (IMEI).Such identifiers can be transmitted to a network server to identifyusers and equipment.

The mobile device 1500 can support one or more input devices 1530, suchas a touch screen 1532, microphone 1534, camera 1536, physical keyboard1538 and/or trackball 1540 and one or more output devices 1550, such asa speaker 1552 and a display 1554. Other possible output devices (notshown) can include piezoelectric or other haptic output devices. Somedevices can serve more than one input/output function. For example,touchscreen 1532 and display 1554 can be combined in a singleinput/output device.

A wireless modem 1560 can be coupled to an antenna (not shown) and cansupport two-way communications between the processor 1510 and externaldevices, as is well understood in the art. The modem 1560 is showngenerically and can include a cellular modem for communicating with themobile communication network 1504 and/or other radio-based modems (e.g.,Bluetooth 564 or Wi-Fi 562). The wireless modem 1560 is typicallyconfigured for communication with one or more cellular networks, such asa GSM network for data and voice communications within a single cellularnetwork, between cellular networks, or between the mobile device and apublic switched telephone network (PSTN).

The mobile device can further include at least one input/output port1580, a power supply 1582, a satellite navigation system receiver 1584,such as a Global Positioning System (GPS) receiver, an accelerometer1586, and/or a physical connector 1536, which can be the connector asdescribed herein. The illustrated components 1502 are not required orall-inclusive, as any components can be deleted and other components canbe added.

FIG. 16 illustrates a generalized example of a suitable implementationenvironment 1600 in which described embodiments, techniques, andtechnologies may be implemented.

In example environment 1600, various types of services (e.g., computingservices) are provided by a cloud 1610. For example, the cloud 1610 cancomprise a collection of computing devices, which may be locatedcentrally, or distributed, that provide cloud-based services to varioustypes of users and devices connected via a network such as the Internet.The implementation environment 1600 can be used in different ways toaccomplish computing tasks. For example, some tasks (e.g., processinguser input and presenting a user interface) can be performed on localcomputing devices (e.g., connected devices 1630, 1640, 1650) while othertasks (e.g., storage of data to be used in subsequent processing) can beperformed in the cloud 1610.

In example environment 1600, the cloud 1610 provides services forconnected devices 1630, 1640, 1650 with a variety of screencapabilities. Connected device 1630 represents a device with a computerscreen 1635 (e.g., a mid-size screen). For example, connected device1630 could be a personal computer such as desktop computer, laptop,notebook, netbook or the like. Connected device 1640 represents a devicewith a mobile device screen 1645 (e.g., a small size screen). Forexample, connected device 1640 could be a mobile phone, smart phone,personal digital assistant, tablet computer and the like. Connecteddevice 1650 represents a device with a large screen 1655. For example,connected device 1650 could be a television screen (e.g., a smarttelevision) or another device connected to a television (e.g., a set-topbox or gaming console) or the like. One or more of the connected devices1630, 1640, 1650 can include touch screen capabilities. Touchscreens canaccept input in different ways. For example, capacitive touchscreensdetect touch input when an object (e.g., a fingertip or stylus) distortsor interrupts an electrical current running across the surface. Asanother example, touchscreens can use optical sensors to detect touchinput when beams from the optical sensors are interrupted. Physicalcontact with the surface of the screen is not necessary for input to bedetected by some touchscreens. Devices without screen capabilities alsocan be used in example environment 1600. For example, the cloud 1610 canprovide services for one or more computers (e.g., server computers)without displays.

Services can be provided by the cloud 1610 through service providers1620, or through other providers of online services (not depicted). Forexample, cloud services can be customized to the screen size, displaycapability, and/or touch screen capability of a particular connecteddevice (e.g., connected devices 1630, 1640, 1650).

In example environment 1600, the cloud 1610 provides the technologiesand solutions described herein to the various connected devices 1630,1640, 1650 using, at least in part, the service providers 1620. Forexample, the service providers 1620 can provide a centralized solutionfor various cloud-based services. The service providers 1620 can manageservice subscriptions for users and/or devices (e.g., for the connecteddevices 1630, 1640, 1650 and/or their respective users).

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially may in some casesbe rearranged or performed concurrently. Moreover, for the sake ofsimplicity, the attached figures may not show the various ways in whichthe disclosed methods can be used in conjunction with other methods.

Any of the disclosed methods can be implemented as computer-executableinstructions stored on one or more computer-readable storage media(e.g., non-transitory computer-readable media, such as one or moreoptical media discs, volatile memory components (such as DRAM or SRAM),or nonvolatile memory components (such as hard drives)) and executed ona computer (e.g., any commercially available computer, including smartphones or other mobile devices that include computing hardware). Any ofthe computer-executable instructions for implementing the disclosedtechniques as well as any data created and used during implementation ofthe disclosed embodiments can be stored on one or more computer-readablemedia (e.g., non-transitory computer-readable media). Thecomputer-executable instructions can be part of, for example, adedicated software application or a software application that isaccessed or downloaded via a web browser or other software application(such as a remote computing application). Such software can be executed,for example, on a single local computer (e.g., any suitable commerciallyavailable computer) or in a network environment (e.g., via the Internet,a wide-area network, a local-area network, a client-server network (suchas a cloud computing network), or other such network) using one or morenetwork computers.

For clarity, only certain selected aspects of the software-basedimplementations are described. Other details that are well known in theart are omitted. For example, it should be understood that the disclosedtechnology is not limited to any specific computer language or program.For instance, the disclosed technology can be implemented by softwarewritten in C++, Java, Perl, JavaScript, Adobe Flash or any othersuitable programming language. Likewise, the disclosed technology is notlimited to any particular computer or type of hardware. Certain detailsof suitable computers and hardware are well known and need not be setforth in detail in this disclosure.

Furthermore, any of the software-based embodiments (comprising, forexample, computer-executable instructions for causing a computer toperform any of the disclosed methods) can be uploaded, downloaded orremotely accessed through a suitable communication means. Such suitablecommunication means include, for example, the Internet, the World WideWeb, an intranet, software applications, cable (including fiber opticcable), magnetic communications, electromagnetic communications(including RF, microwave, and infrared communications), electroniccommunications, or other such communication means.

Additional embodiments and aspects of the technologies described hereinare described in the following numbered embodiments.

Embodiment 1

A method of configuring a connector (220, 420) of a mobile host device(200,400) for connecting to a connector (270, 1070) of an accessorydevice (250, 1050), comprising: at the mobile host device (200,400),selecting one or more functions to be enabled for connecting to theaccessory device (250,1050), wherein the accessory device is releasablyattached to the mobile host device; configuring one or more pins (228)of the mobile host device connector (220,420), the configuringcomprising enabling the one or more selected functions at the mobilehost device connector (220,420); and instructing the accessory device(250,1050) to configure one or more pins (278, 1078) of the accessorydevice connector (270,1070) to support the one or more selectedfunctions.

Embodiment 2

The method of any of the previous numbered embodiments, furthercomprising: requesting functions supported by the accessory deviceconnector (270,1070) from the accessory device (250,1050); and receivingan indication of one or more functions supported by the accessory deviceconnector (270,1070) from the accessory device (250,1050).

Embodiment 3

The method of any of the previous numbered embodiments, wherein: themobile host device connector (220,420) comprises one or morefixed-function pins (224) and one or more multi-function pins (228); theone or more functions supported by the accessory device connector(270,1070) are received at the one or more fixed-function pins (224);the one or more functions to be enabled at the accessory device(250,1050) are sent from the one or more fixed-function pins (224); andthe one or more pins of the mobile host device (200,400) that areconfigured are multi-function pins (228).

Embodiment 4

The method of any of the previous numbered embodiments, determining thatdata currently being transferred or scheduled to be transferred betweenthe mobile host device (200, 400) and the accessory device (250, 1050)can be transferred at a higher data rate by enabling an additionalfunction of the mobile host device connector (220, 420); reconfiguringthe one or more pins (228) of the mobile host device connector (220,420), the reconfiguring comprising enabling the additional function atthe mobile host device connector (220, 420); instructing the accessorydevice (250, 1050) to reconfigure the one or more pins (278, 1078) ofthe accessory device connector (270, 1070) to support the additionalfunction; and using the additional function to transfer data between themobile host device (200, 400) and the accessory device (250, 1050).

Embodiment 5

The method of any of the previous numbered embodiments, furthercomprising: determining that an operation currently being performed orscheduled to be performed on the mobile host device (200, 400) involvesthe transfer of video data between the mobile host device (200, 400) andthe accessory device (250, 1050); determining that HDMI (High-DefinitionMultimedia Interface) is not enabled at the mobile host device connector(220, 420); in response to determining that an operation currently beingperformed or scheduled to be performed on the mobile host deviceinvolves the transfer of video data between the mobile host device andthe accessory device and that HDMI is not enabled at the mobile hostdevice connector: reconfiguring the one or pins (228) of the mobile hostdevice connector (220, 420) to support HDMI, the reconfiguringcomprising enabling HDMI at the mobile host device connector (220, 420);and instructing the accessory device (250, 1050) to reconfigure the oneor more pins (278, 1078) of the accessory device connector (270, 1070)to support HDMI.

Embodiment 6

The method of any of the previous numbered embodiments, furthercomprising: detecting detachment of the accessory device (250, 1050)from the mobile host device (200, 400); detecting attachment of a secondaccessory device (250, 1050) to the mobile host device (200, 400), thesecond accessory device (250, 1050) comprising a second accessory deviceconnector (270, 1070); requesting functions supported by the secondaccessory device connector (270, 1070) from the mobile host device (200,400); receiving an indication of one or more functions supported by thesecond accessory device connector (270, 1070) from the second accessorydevice (250, 1050); at the mobile host device (200, 400), selecting oneor more second functions to be enabled for connecting the mobile hostdevice (200, 400) to the second accessory device (250, 1050);reconfiguring one or more pins (228) of the mobile host device connector(220, 420), the reconfiguring comprising enabling the one or more secondselected functions at the mobile host device connector (220, 420); andinstructing the second accessory device (250, 1050) to reconfigure theone or more pins (278, 1078) of the second accessory device connector(270, 1070) to support the one or more second selected functions.

Embodiment 7

The method of any of the previous numbered embodiments, furthercomprising: detecting detachment of the accessory device (250, 1050)from the mobile host device (200, 400) and in response to detectingdetachment of the accessory device (250, 1050) from the mobile hostdevice (200, 400), reconfiguring the one or more pins (228) of themobile host device connector (220, 420) to support a default set offunctions or to return the mobile host device connector to a previousconfiguration.

Embodiment 8

The method of any of the previous numbered embodiments, furthercomprising: receiving from the accessory device (250, 1050) anindication of one or more suggested functions to be enabled; and whereinthe selecting one or more functions to be enabled for connecting themobile host device (200, 400) to the accessory device (250, 1050) isbased in part on the one or more suggested functions to be enabledreceived from the accessory device (250, 1050).

Embodiment 9

A method of configuring a connector (270, 1070) of an accessory device(250, 1050) for connecting to a connector (270, 1070) of a mobile hostdevice (200, 400), comprising: sending, to the mobile host device (200,400), an indication of one or more functions supported by the accessorydevice connector (270, 1070), the accessory device releasably attachedto the mobile host device; receiving an instruction from the mobile hostdevice (200, 400) to configure one or more pins (278, 1078) of theaccessory device connector (270, 1070) to support one or more functionsselected by the mobile host device (200, 400); and configuring the oneor more pins (278, 1078) of the accessory device connector (270, 1070)for connecting to the mobile host device (200, 400), the configuringcomprising enabling the one or more functions selected by the mobilehost device (200, 400) at the accessory device connector (270, 1070).

Embodiment 10

The method of any of the previous numbered embodiments, furthercomprising: receiving a request from the mobile host device (200, 400)for the one or more functions supported by the accessory deviceconnector (270, 1070).

Embodiment 11

The method of any of the previous numbered embodiments, furthercomprising: receiving an instruction from the mobile host device (200,400) to reconfigure the one or more pins (278, 1078) of the accessorydevice connector (270, 1070) to support one or more second selectedfunctions; and reconfiguring the one or more pins (278, 1078) of theaccessory device connector (270, 1070), the reconfiguring comprisingenabling the one or more second selected functions at the accessorydevice connector (270, 1070).

Embodiment 12

The method of any of the previous numbered embodiments, the accessorydevice connector (270, 1070) comprises one or more fixed-function pins(274, 1074) and one or more multi-function pins (278, 1078); theindication of the one or more functions supported by the accessorydevice connector (250, 1050) is sent from one or more of the one or morefixed-function pins (274, 1074); and the instruction to reconfigure theone or more pins is received at one or more of the one or morefixed-function pins (274, 1074).

Embodiment 13

A mobile host device, comprising: a connector (220, 270, 420,1070)comprising one or more fixed-functions pins (224, 274, 1074) and one ormore multi-function pins (228, 278, 1078); a controller (210, 260, 410,1060); and one or more computer-readable media storingcomputer-executable instructions for causing the mobile host device(200, 400) to perform a method of configuring the mobile host deviceconnector (220, 420) for connecting to a releasably attachable accessorydevice (250, 1050), the method comprising: requesting functionssupported by an accessory device connector (270, 1070) from theaccessory device (250, 1050); receiving an indication of one or morefunctions supported by the accessory device connector (270, 1070) fromthe accessory device (250, 1050); at the mobile host device (200, 400),selecting one or more functions to be enabled for connecting the mobilehost device (200, 400) to the accessory device (250, 1050); configuringone or more pins (228) of the mobile host device connector (220, 420),the configuring comprising enabling the one or more selected functionsat the mobile host device connector (220, 420); and instructing theaccessory device (250, 1050) to configure one or more pins (278, 1078)of an accessory device connector (270, 1070) to support the one or moreselected functions.

Embodiment 14

The device of any of the previous numbered embodiments, wherein: the oneor more functions supported by the accessory device connector (270,1070) is received at the one or more fixed-function pins (224, 274,1074); the one or more functions are sent from the one or morefixed-function pins (224, 274, 1074); and the one or more pins of themobile host device (200, 400) that are configured are multi-functionpins (228, 278, 1078).

Embodiment 15

The device of any of the previous numbered embodiments, wherein theconnector (800) comprises a first group of pins physically separatedfrom a second group of pins (810, 820), the first group of pins (810)comprises one or more of the one or more fixed-functions pins (224, 274,1074) and the second group of pins (820) comprises the one or moremulti-function pins (228, 278, 1078) and the remainder of the one ormore fixed-function pins (224, 274, 1074).

In view of the many possible embodiments to which the principles of thedisclosed invention may be applied, it should be recognized that theillustrated embodiments are only preferred examples of the invention andshould not be taken as limiting the scope of the invention. Rather, thescope of the invention is defined by the following claims. We thereforeclaim as our invention all that comes within the scope and spirit ofthese claims.

We claim:
 1. A method of configuring a connector of a mobile host devicefor connecting to a connector of an accessory device, comprising:receiving an indication of one or more functions supported by theaccessory device connector from the accessory device; at the mobile hostdevice, selecting one or more functions to be enabled for connecting tothe accessory device, wherein the accessory device is releasablyattached to the mobile host device; configuring one or more pins of themobile host device connector, the configuring comprising enabling theone or more selected functions at the mobile host device connector; andinstructing the accessory device to configure one or more pins of theaccessory device connector to support the one or more selectedfunctions; determining that data currently being transferred orscheduled to be transferred between the mobile host device and theaccessory device can be transferred by using one or more additionalfunctions of the mobile host device connector; and in response to thedetermining: reconfiguring the one or more pins of the mobile hostdevice connector, the reconfiguring comprising enabling the one or moreadditional functions at the mobile host device connector; instructingthe accessory device to reconfigure the one or more pins of theaccessory device connector to support the one or more additionalfunctions; and using the one or more additional functions to transferthe data between the mobile host device and the accessory device; andwherein the one or more pins of the mobile host device connectorcomprises one or more fixed-function pins and one or more multi-functionpins.
 2. The method of claim 1, further comprising requesting functionssupported by the accessory device connector from the accessory device.3. The method of claim 2, wherein: the one or more functions supportedby the accessory device connector are received at the one or morefixed-function pins; the one or more functions to be enabled at theaccessory device are sent from the one or more fixed-function pins; andthe one or more pins of the mobile host device that are configured aremulti-function pins.
 4. The method of claim 1, wherein the mobile hostdevice connector is unconfigured or in a previous configuration beforeenabling the one or more selected functions at the mobile host deviceconnector.
 5. The method of claim 1, wherein one of the one or moreadditional functions is HDMI (High-Definition Multimedia Interface). 6.The method of claim 1, further comprising: detecting detachment of theaccessory device from the mobile host device; detecting attachment of asecond accessory device to the mobile host device, the second accessorydevice comprising a second accessory device connector; requestingfunctions supported by the second accessory device connector from themobile host device; receiving an indication of one or more functionssupported by the second accessory device connector from the secondaccessory device; at the mobile host device, selecting one or moresecond functions to be enabled for connecting the mobile host device tothe second accessory device; reconfiguring the one or more pins of themobile host device connector, the reconfiguring comprising enabling theone or more second selected functions at the mobile host deviceconnector; and instructing the second accessory device to reconfigurethe one or more pins of the second accessory device connector to supportthe one or more second selected functions.
 7. The method of claim 1,further comprising: detecting detachment of the accessory device fromthe mobile host device; and in response to the detecting detachment ofthe accessory device from the mobile host device, reconfiguring the oneor more pins of the mobile host device connector to support a defaultset of functions or to return the mobile host device connector to aprevious configuration.
 8. The method of claim 1, further comprising:receiving from the accessory device an indication of one or moresuggested functions to be enabled; and wherein the selecting one or morefunctions to be enabled for connecting the mobile host device to theaccessory device is based in part on the one or more suggested functionsto be enabled received from the accessory device.
 9. A method ofconfiguring a connector of an accessory device for connecting to aconnector of a mobile host device, comprising: sending, to the mobilehost device, an indication of one or more functions supported by theaccessory device connector, the accessory device releasably attached tothe mobile host device; receiving an instruction from the mobile hostdevice to configure one or more pins of the accessory device connectorto support one or more functions selected by the mobile host device;configuring the one or more pins of the accessory device connector forconnecting to the mobile host device, the configuring comprisingenabling the one or more functions selected by the mobile host device atthe accessory device connector; receiving an instruction from the mobilehost device to reconfigure the one or more pins of the accessory deviceconnector to support one or more second selected functions; anddetermining that data currently being transferred or scheduled to betransferred between the mobile host device and the accessory device canbe transferred by using one or more additional functions of the mobilehost device connector; in response to the determining: reconfiguring theone or more pins of the accessory device connector, the reconfiguringcomprising enabling the one or more second selected functions at theaccessory device connector; instructing the accessory device toreconfigure the one or more pins of the accessory device connector tosupport the one or more additional functions; and using the one or moreadditional functions to transfer the data between the mobile host deviceand the accessory device; wherein the one or more pins of the accessorydevice connector comprises one or more fixed-function pins and one ormore multi-function pins.
 10. The method of claim 9, further comprising:receiving a request from the mobile host device for the one or morefunctions supported by the accessory device connector.
 11. The method ofclaim 9, wherein at least one function supported by the accessory deviceconnector is not included in the indication of the one or more functionssupported by the accessory device connector sent to the mobile hostdevice.
 12. The method of claim 9, wherein the accessory deviceconnector is unconfigured or in a previous configuration prior toconfiguring the one or more pins of the accessory device connector. 13.The method of claim 9, wherein: the indication of the one or morefunctions supported by the accessory device connector is sent from theone or more of the fixed-function pins; and the instruction toreconfigure the one or more pins is received at the one or morefixed-function pins.
 14. The method of claim 9, further comprising:detecting detachment of the accessory device from the mobile hostdevice; and reconfiguring the one or more pins of the accessory deviceconnector to support a default set of functions or to return theaccessory device connector to a previous configuration.
 15. A hostdevice, comprising: a host device connector comprising one or morefixed-function pins and one or more multi-function pins; a controller;and one or more computer-readable storage media storingcomputer-executable instructions for causing the host device to performa method of configuring the host device connector for connecting to areleasably attached accessory device, the method comprising: requestingfunctions supported by an accessory device connector from the accessorydevice; receiving an indication of one or more functions supported bythe accessory device connector from the accessory device; at the hostdevice, selecting one or more functions to be enabled for connecting thehost device to the accessory device; configuring one or more pins of thehost device connector, the configuring comprising enabling the one ormore selected functions at the host device connector; instructing theaccessory device to configure one or more pins of an accessory deviceconnector to support the one or more selected functions; and determiningthat data currently being transferred or scheduled to be transferredbetween the host device and the accessory device can be transferred byusing one or more additional functions of the host device connector; inresponse to the determining: reconfiguring the one or more pins of thehost device connector depending on an operation currently beingperformed or scheduled to be performed on the host device, thereconfiguring comprising enabling the one or more additional functionsat the host device connector; instructing the accessory device toreconfigure the one or more pins of the accessory device connector tosupport the one or more selected functions; and using the one or moreadditional functions to transfer data between the host device and theaccessory device.
 16. The host device of claim 15, wherein: the one ormore functions supported by the accessory device connector is receivedat the one or more fixed-function pins; the one or more functions aresent from the one or more fixed-function pins; and the one or more pinsof the host device that are configured are multi-function pins.
 17. Thehost device of claim 15, wherein the mobile device connector comprises afirst group of pins physically separated from a second group of pins,the first group of pins comprises one or more of the one or morefixed-function pins and the second group of pins comprises the one ormore multi-function pins and the remainder of the one or morefixed-function pins.
 18. The host device of claim 15 further comprisinga host connector function store storing one or more functions supportedby the host device connector.